package cn.bearspark.happening.dto.happening;

import cn.bearspark.common.aop.autoparse.host.ParseHost;
import cn.bearspark.common.aop.autoparse.host.ParseEnum;
import cn.bearspark.common.dto.DelayPublishable;
import cn.bearspark.common.enumeration.CommentAbleEnum;
import cn.bearspark.common.enumeration.VisibilityEnum;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 发布动态的请求的数据传输对象
 *
 * @author f
 */
@Data
public class PublishHappeningReqDTO implements Serializable, DelayPublishable {

    /**
     * 用户的 id
     */
    private Long userId;

    /**
     * 动态的标题
     */
    private String title;

    /**
     * 动态的内容
     */
    private String content;

    /**
     * 动态的可见性
     *
     * @see VisibilityEnum
     */
    private Integer visibility;

    /**
     * 动态的可评论性
     *
     * @see CommentAbleEnum
     */
    private Integer commentAble;

    /**
     * 提前发布
     *
     * @see cn.bearspark.happening.enumeration.happening.AdvanceReleaseEnum
     */
    private Integer advanceRelease;

    /**
     * 标签的 id
     */
    private Long tagId;

    /**
     * 图片的 url 的路径的集合
     */
    @ParseHost(ParseEnum.PARSE)
    private List<String> imgUrlList;

    /**
     * 动态的发布时间
     */
    private LocalDateTime pubTime;

    /**
     * 发布预约直播的信息
     */
    private BookLiveInfo4Publish bookLiveInfo;

    /**
     * 发布投票的信息
     */
    private VoteInfo4Publish voteInfo;
}
